import service from '../utils/axios'
import type { ApiResponse } from '../utils/axios'

// 专业数据接口
export interface MajorInfo {
  id: number
  name: string
  collegeId: number
  createBy?: string
  createTime?: string
  updateBy?: string
  updateTime?: string
}

// 分页查询参数接口
interface MajorQueryParams {
  name?: string
  collegeId?: number
  page?: number
  size?: number
}

// 分页查询响应接口
interface PageResult<T> {
  data: T[]
  total: number
  page: number
  size: number
}

// 创建/更新专业请求接口
interface MajorRequest {
  name: string
  collegeId: number
}

/**
 * 根据学院ID获取专业列表（用于下拉选择）
 */
export function getMajorsByCollege(collegeId: number): Promise<ApiResponse<MajorInfo[]>> {
  return service({
    url: `/api/majors/college/${collegeId}`,
    method: 'get'
  })
}

/**
 * 获取专业列表（分页）
 */
export function getMajorList(data: MajorQueryParams): Promise<ApiResponse<PageResult<MajorInfo>>> {
  return service({
    url: '/api/majors/query',
    method: 'post',
    data
  })
}

/**
 * 获取专业详情
 */
export function getMajorById(id: number): Promise<ApiResponse<MajorInfo>> {
  return service({
    url: `/api/majors/${id}`,
    method: 'get'
  })
}

/**
 * 创建专业
 */
export function createMajor(data: MajorRequest): Promise<ApiResponse<{ id: number }>> {
  return service({
    url: '/api/majors',
    method: 'post',
    data
  })
}

/**
 * 更新专业
 */
export function updateMajor(id: number, data: MajorRequest): Promise<ApiResponse<void>> {
  return service({
    url: `/api/majors/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除专业
 */
export function deleteMajor(id: number): Promise<ApiResponse<void>> {
  return service({
    url: `/api/majors/${id}`,
    method: 'delete'
  })
}













